<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
  <title>Version 1.51.0</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <link rel="icon" href="/favicon.ico" type="image/ico" />
  <link rel="stylesheet" type="text/css" href="/style-v2/section-boost.css" />

  <style type="text/css">
/*<![CDATA[*/
  #content .news-description ul {
    list-style: none;
  }
  #content .news-description ul ul {
    list-style: circle;
  }
  /*]]>*/
  </style>

  <!--[if IE 7]> <style type="text/css"> body { behavior: url(/style-v2/csshover3.htc); } </style> <![endif]-->
</head>
<!-- Don't edit this page! It's generated by site-tools/site-tools.py -->
<body>
  <div id="heading">
    <!--#include virtual="/common/heading.html" -->  </div>

  <div id="body">
    <div id="body-inner">
      <div id="content">
        <div class="section" id="intro">
          <div class="section-0">
            <div class="section-title">
              <h1>Version 1.51.0</h1>
            </div>

            <div class="section-body">
              <h2><span class=
              "news-title">Version 1.51.0</span></h2>

              <p><span class=news-date">August 20th, 2012 23:00 GMT</span></p>
              <p><a href="/doc/libs/1_51_0/">Documentation</a>
              <table class="download-table"><caption>Downloads</caption><tr><th scope="col">Platform</th><th scope="col">File</th></tr>
<tr><th scope="row" rowspan="2">unix</th><td><a href="http://sourceforge.net/projects/boost/files/boost/1.51.0/boost_1_51_0.tar.bz2">boost_1_51_0.tar.bz2</a></td></tr><tr><td><a href="http://sourceforge.net/projects/boost/files/boost/1.51.0/boost_1_51_0.tar.gz">boost_1_51_0.tar.gz</a></td></tr>
<tr><th scope="row" rowspan="2">windows</th><td><a href="http://sourceforge.net/projects/boost/files/boost/1.51.0/boost_1_51_0.7z">boost_1_51_0.7z</a></td></tr><tr><td><a href="http://sourceforge.net/projects/boost/files/boost/1.51.0/boost_1_51_0.zip">boost_1_51_0.zip</a></td></tr></table>
              <div class="news-description">
                <div class="description">



  <div id="version_1_51_0.patches">
    <h3><span class="link">Patches</span></h3>
    <ul>
      <li>
        <div>
          <a href="http://cppcms.com/files/locale/boost_locale_utf.patch">Locale
          Patch</a> - Fixes a bug which causes <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">locale</span><span class="special">::</span><span class="identifier">utf</span><span class="special">::</span><span class="identifier">utf_traits</span></code>
          to accept some invalid UTF-8 sequences, which is a possible security flaw.
        </div>
      </li>
    </ul>
  </div>
  <div id="version_1_51_0.new_libraries">
    <h3><span class="link">New Libraries</span></h3>
    <ul>
      <li>
        <div>
          <span class="library"><a href="/libs/context/">Context</a>:</span>
  Context switching library,
          from Oliver Kowalke.
        </div>
      </li>
    </ul>
  </div>
  <div id="version_1_51_0.updated_libraries">
    <h3><span class="link">Updated Libraries</span></h3>
    <ul>
      <li>
        <div>
          <span class="library"><a href="/libs/algorithm/">Algorithm</a>:</span>
          <ul>
            <li>
              <div>
                Fixed <code><span class="identifier">is_sorted_until</span></code>
                ; now matches the c++11 standard behavior on ranges with duplicate
                values.
              </div>
            </li>
            <li>
              <div>
                Added range support for the rest of the search algorithms.
              </div>
            </li>
            <li>
              <div>
                <code><span class="identifier">unhex</span></code> now uses Boost.Exception
                to signal bad input.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/asio/">Asio</a>:</span>
          <ul>
            <li>
              <div>
                Fixed an incompatibility between <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">tcp</span><span class="special">::</span><span class="identifier">iostream</span></code>
                and C++11 (<a href="https://svn.boost.org/trac/boost/ticket/7162">#7162</a>).
              </div>
            </li>
            <li>
              <div>
                Decorated GCC attribute names with underscores to prevent interaction
                with user-defined macros (<a href="https://svn.boost.org/trac/boost/ticket/6415">#6415</a>).
              </div>
            </li>
            <li>
              <div>
                Added missing <code><span class="preprocessor">#include</span>
                <span class="special">&lt;</span><span class="identifier">cctype</span><span class="special">&gt;</span></code>, needed for some versions of
                MinGW.
              </div>
            </li>
            <li>
              <div>
                Changed to use <tt>gcc</tt>'s atomic builtins on ARM CPUs,
                when available (<a href="https://svn.boost.org/trac/boost/ticket/7140">#7140</a>).
              </div>
            </li>
            <li>
              <div>
                Changed strand destruction to be a no-op, to allow strand objects
                to be destroyed after their associated <code><span class="identifier">io_service</span></code>
                has been destroyed.
              </div>
            </li>
            <li>
              <div>
                Added support for some newer versions of glibc which provide the
                <code><span class="identifier">epoll_create1</span><span class="special">()</span></code>
                function but always fail with <code><span class="identifier">ENOSYS</span></code>
                (<a href="https://svn.boost.org/trac/boost/ticket/7012">#7012</a>).
              </div>
            </li>
            <li>
              <div>
                Changed the SSL implementation to throw an exception if SSL engine
                initialisation fails (<a href="https://svn.boost.org/trac/boost/ticket/6303">#6303</a>).
              </div>
            </li>
            <li>
              <div>
                Fixed another regression in <code><span class="identifier">buffered_write_stream</span></code>
                (<a href="https://svn.boost.org/trac/boost/ticket/6310">#6310</a>).
              </div>
            </li>
            <li>
              <div>
                Implemented various minor performance improvements, primarily targeted
                at Linux x86 and x86-64 platforms.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/config/">Config</a>:</span>
          <ul>
            <li>
              <div>
                Deprecated a whole bunch of macros that were c++11 specific, but
                not named to show that they were c++11 specific. Made new macros
                with better names, and paired the old macros with the new ones. Updated
                the documentation to list the deprecated macros.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/chrono/">Chrono</a>:</span>
          <ul>
            <li>
              <div>
                <a href="https://svn.boost.org/trac/boost/ticket/6918">#6918</a>
                Boost Chrono compilation failure on HP uX due to undefined pthread_getcpuclockid.
              </div>
            </li>
            <li>
              <div>
                <a href="https://svn.boost.org/trac/boost/ticket/6241">#6241</a>
                boost::chrono compilation problems without std::wstring support.
              </div>
            </li>
            <li>
              <div>
                <a href="https://svn.boost.org/trac/boost/ticket/6987">#6987</a>
                Documentation &amp; C++11.
              </div>
            </li>
            <li>
              <div>
                <a href="https://svn.boost.org/trac/boost/ticket/7041">#7041</a>
                time_point.hpp depends on Boost.System.
              </div>
            </li>
            <li>
              <div>
                <a href="https://svn.boost.org/trac/boost/ticket/7042">#7042</a>
                Avoiding time_point and duration dependency on time.h and CLOCK_REALTIME.
              </div>
            </li>
            <li>
              <div>
                <a href="https://svn.boost.org/trac/boost/ticket/7058">#7058</a>
                Make it work when BOOST_NO_EXCEPTIONS is defined.
              </div>
            </li>
            <li>
              <div>
                <a href="https://svn.boost.org/trac/boost/ticket/7069">#7069</a>
                Misspellings in clock_string&lt;thread_clock&gt;.
              </div>
            </li>
            <li>
              <div>
                <a href="https://svn.boost.org/trac/boost/ticket/7081">#7081</a>
                WinError.h capitalization in boost/detail/win/basic_types.hpp.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/geometry/">Geometry</a>:</span>
          <ul>
            <li>
              <div>
                points accessed through a pointer (e.g. in a linestring) should now
                be specialized without the pointer. In previous versions a type
                <code><span class="identifier">my_point</span></code> used like
                <code><span class="identifier">linestring</span><span class="special">&lt;</span><span class="identifier">my_point</span><span class="special">*&gt;</span></code>
                had to be specalized like: <code><span class="keyword">template</span><span class="special">&lt;&gt;</span> <span class="keyword">struct</span>
                <span class="identifier">tag</span><span class="special">&lt;</span><span class="identifier">my_point</span><span class="special">*&gt;</span></code>.
                Now the library itself removes the pointer before calling the traits
                class, so now it should be like: <code><span class="keyword">template</span><span class="special">&lt;&gt;</span> <span class="keyword">struct</span>
                <span class="identifier">tag</span><span class="special">&lt;</span><span class="identifier">my_point</span><span class="special">&gt;</span></code>
              </div>
            </li>
            <li>
              <div>
                intersection was sometimes wrong for integer points, fixed
              </div>
            </li>
            <li>
              <div>
                documentation, order of parameters in simplify was wrong, fixed
              </div>
            </li>
            <li>
              <div>
                <a href="https://svn.boost.org/trac/boost/ticket/7030">7030</a>
                spherical distance, fixed (by patch of Karsten Ahnert)
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/graph/">Graph</a>:</span>
          <ul>
            <li>
              <div>
                Refactored support for internal and bundled properties in Boost.Graph-provided
                graph types, and cleaned up named parameter functionality:
                <ul>
                  <li>
                    <div>
                      Enabled old-style (non-bundled) internal properties in <code><span class="identifier">compressed_sparse_row_graph</span></code>.
                    </div>
                  </li>
                  <li>
                    <div>
                      Bundled properties should work correctly for all graph types
                      and adaptors.
                    </div>
                  </li>
                </ul>
              </div>
            </li>
            <li>
              <div>
                Bugs fixed:
                <ul>
                  <li>
                    <div>
                      <a href="https://svn.boost.org/trac/boost/ticket/6993">#6993</a>: Typo Bundled Properties document
                    </div>
                  </li>
                  <li>
                    <div>
                      <a href="https://svn.boost.org/trac/boost/ticket/7002">#7002</a>: Problem with initialization of CSR bidirectional
                      graph
                    </div>
                  </li>
                  <li>
                    <div>
                      <a href="https://svn.boost.org/trac/boost/ticket/7023">#7023</a>: Enclose internal type graphml_reader in anonymous
                      namespace
                    </div>
                  </li>
                  <li>
                    <div>
                      Other bugs and warnings not in Trac
                    </div>
                  </li>
                </ul>
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/functional/hash/">Hash</a>:</span>
          <ul>
            <li>
              <div>
                Support the standard smart pointers.
              </div>
            </li>
            <li>
              <div>
                <code><span class="identifier">hash_value</span></code> now implemented
                using SFINAE to avoid implicit casts to built in types when calling
                it.
              </div>
            </li>
            <li>
              <div>
                Updated to use the new config macros.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/conversion/lexical_cast.htm">Lexical cast</a>:</span>
          <ul>
            <li>
              <div>
                Better performance, less memory usage for <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special">&lt;</span><span class="identifier">character_type</span><span class="special">,</span> <span class="identifier">N</span><span class="special">&gt;</span></code> and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">array</span><span class="special">&lt;</span><span class="identifier">character_type</span><span class="special">,</span> <span class="identifier">N</span><span class="special">&gt;</span></code> conversions.
              </div>
            </li>
            <li>
              <div>
                Fixed bug with volatile input parameter <a href="https://svn.boost.org/trac/boost/ticket/7157">#7157</a>.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/math/">Math</a>:</span>
          <ul>
            <li>
              <div>
                Updated to use the new config macros.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/msm/">MSM</a>:</span>
          <ul>
            <li>
              <div>
                Support for boost::any <a href="https://www.boost.org/doc/libs/1_51_0/libs/msm/doc/HTML/ch03s03.html#any-event">https://www.boost.org/doc/libs/1_51_0/libs/msm/doc/HTML/ch03s03.html#any-event</a>
                or kleene <a href="https://www.boost.org/doc/libs/1_51_0/libs/msm/doc/HTML/ch03s04.html#kleene-event">https://www.boost.org/doc/libs/1_51_0/libs/msm/doc/HTML/ch03s04.html#kleene-event</a>
                as acceptable events
              </div>
            </li>
            <li>
              <div>
                Bugfix: compiler error with fsm internal table and none (compound)
                event.
              </div>
            </li>
            <li>
              <div>
                Bugfix: euml::defer_ leading to stack overflow.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/proto/">Proto</a>:</span>
          <ul>
            <li>
              <div>
                Proto transforms get pseudo-parameter pack expansion support for
                unpacking expressions. See the <a href="/doc/html/proto/appendices.html#boost_proto.appendices.release_notes.boost_1_51">Release
                Notes</a> for more information.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/ratio/">Ratio</a>:</span>
          <ul>
            <li>
              <div>
                <a href="https://svn.boost.org/trac/boost/ticket/7075">#7075</a>
                Workaround for error: the type of partial specialization template
                parameter constant "n1" depends on another template parameter.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/regex/">Regex</a>:</span>
          <ul>
            <li>
              <div>
                Updated to use the new config macros.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/thread/">Thread</a>:</span>
          <ul>
            <li>
              <div>
                <a href="https://svn.boost.org/trac/boost/ticket/4258">#4258</a>
                Linking with boost thread does not work on mingw/gcc 4.5.
              </div>
            </li>
            <li>
              <div>
                <a href="https://svn.boost.org/trac/boost/ticket/4885">#4885</a>
                Access violation in set_tss_data at process exit due to invalid assumption
                about TlsAlloc.
              </div>
            </li>
            <li>
              <div>
                <a href="https://svn.boost.org/trac/boost/ticket/6931">#6931</a>
                mutex waits forwever with Intel Compiler and /debug:parallel
              </div>
            </li>
            <li>
              <div>
                <a href="https://svn.boost.org/trac/boost/ticket/7044">#7044</a>
                boost 1.50.0 header missing.
              </div>
            </li>
            <li>
              <div>
                <a href="https://svn.boost.org/trac/boost/ticket/7052">#7052</a>
                Thread: BOOST_THREAD_PROVIDES_DEPRECATED_FEATURES_SINCE_V3_0_0 only
                masks thread::operator==, thread::operator!= forward declarations,
                not definitions.
              </div>
            </li>
            <li>
              <div>
                <a href="https://svn.boost.org/trac/boost/ticket/7066">#7066</a>
                An attempt to fix current_thread_tls_key static initialization order.
              </div>
            </li>
            <li>
              <div>
                <a href="https://svn.boost.org/trac/boost/ticket/7074">#7074</a>
                Multiply defined symbol boost::allocator_arg.
              </div>
            </li>
            <li>
              <div>
                <a href="https://svn.boost.org/trac/boost/ticket/7078">#7078</a>
                Trivial 64-bit warning fix on Windows for thread attribute stack
                size
              </div>
            </li>
            <li>
              <div>
                <a href="https://svn.boost.org/trac/boost/ticket/7089">#7089</a>
                BOOST_THREAD_WAIT_BUG limits functionality without solving anything
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/unordered/">Unordered</a>:</span>
          <ul>
            <li>
              <div>
                Fix construction/destruction issue when using a C++11 compiler with
                a C++03 allocator (<a href="https://svn.boost.org/trac/boost/ticket/7100">#7100</a>).
              </div>
            </li>
            <li>
              <div>
                Remove a <code><span class="keyword">try</span><span class="special">..</span><span class="keyword">catch</span></code> to support compiling without
                exceptions.
              </div>
            </li>
            <li>
              <div>
                Adjust SFINAE use to try to supprt g++ 3.4 (<a href="https://svn.boost.org/trac/boost/ticket/7175">#7175</a>).
              </div>
            </li>
            <li>
              <div>
                Updated to use the new config macros.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/wave/">Wave</a>:</span>
          <ul>
            <li>
              <div>
                See the <a href="/libs/wave/ChangeLog">Changelog</a> for details.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/xpressive/">xpressive</a>:</span>
          <ul>
            <li>
              <div>
                Work around buggy wide ctype facet on cygwin and mingw.
              </div>
            </li>
            <li>
              <div>
                Work around absence of __isctype on some glibc implementations.
              </div>
            </li>
            <li>
              <div>
                <code><span class="identifier">op</span><span class="special">::</span><span class="identifier">as</span></code> shouldn't assume <code><span class="identifier">string</span><span class="special">::</span><span class="identifier">iterator</span></code> != <code><span class="keyword">char</span><span class="special">*</span></code>.
              </div>
            </li>
            <li>
              <div>
                Fix assertion in <code><span class="identifier">cpp_regex_traits</span></code>
                on libc++, thanks to John Fletcher.
              </div>
            </li>
          </ul>
        </div>
      </li>
    </ul>
  </div>
  <div id="version_1_51_0.compilers_tested">
    <h3><span class="link">Compilers Tested</span></h3>
    <p>
      Boost's primary test compilers are:
    </p>
    <ul>
      <li>
        <div>
          Linux:
          <ul>
            <li>
              <div>
                GCC: 4.2.4, 4.3.4, 4.4.3, 4.5.3, 4.6.2, 4.7
              </div>
            </li>
            <li>
              <div>
                GCC, C++11 mode: 4.3.4, 4.4.3, 4.5.3, 4.6.2
              </div>
            </li>
            <li>
              <div>
                Intel: 11.1, 12.0, 12.1
              </div>
            </li>
            <li>
              <div>
                LLVM Clang 2.8
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          OS X:
          <ul>
            <li>
              <div>
                GCC: 4.4
              </div>
            </li>
            <li>
              <div>
                GCC, C++11 mode: 4.4
              </div>
            </li>
            <li>
              <div>
                Intel: 11.1, 12.0
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          Windows:
          <ul>
            <li>
              <div>
                GCC, mingw: 4.4.0, 4.4.7, 4.5.4, 4.6.3
              </div>
            </li>
            <li>
              <div>
                Visual C++: 8.0, 9.0, 10.0
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          FreeBSD:
          <ul>
            <li>
              <div>
                GCC: 4.2.1, 32 and 64 bit
              </div>
            </li>
          </ul>
        </div>
      </li>
    </ul>
    <p>
      Boost's additional test compilers include:
    </p>
    <ul>
      <li>
        <div>
          Linux:
          <ul>
            <li>
              <div>
                Clang: from subversion
              </div>
            </li>
            <li>
              <div>
                LLVM Clang: 3.0
              </div>
            </li>
            <li>
              <div>
                GCC: 4.2.4, 4.3.4, 4.4.4, 4.4.7, 4.5.3, 4.6.2, 4.6.3, 4.7.0, 4.7.1
              </div>
            </li>
            <li>
              <div>
                GCC, C++11 mode: 4.3.4, 4.4.4, 4.5.3, 4.6.3
              </div>
            </li>
            <li>
              <div>
                pgCC: 11.9
              </div>
            </li>
            <li>
              <div>
                Intel: 10.1, 11.1, 12.0, 12.1
              </div>
            </li>
            <li>
              <div>
                Visual Age: 10.1
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          OS X:
          <ul>
            <li>
              <div>
                Clang: from subversion
              </div>
            </li>
            <li>
              <div>
                Clang, C++11 mode: from subversion
              </div>
            </li>
            <li>
              <div>
                Intel: 11.1, 12.0
              </div>
            </li>
            <li>
              <div>
                GCC: 4.4
              </div>
            </li>
            <li>
              <div>
                GCC, C++11 mode: 4.4
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          Windows:
          <ul>
            <li>
              <div>
                Visual C++: 8.0, 9.0, 10.0
              </div>
            </li>
            <li>
              <div>
                GCC, mingw: 4.4.0, 4.6.3, 4.7.0
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          AIX:
          <ul>
            <li>
              <div>
                IBM XL C/C++ Enterprise Edition: V12.1.0.0
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          FreeBSD:
          <ul>
            <li>
              <div>
                GCC: 4.2.1, 32 and 64 bit
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          Solaris:
          <ul>
            <li>
              <div>
                Sun: 5.10
              </div>
            </li>
          </ul>
        </div>
      </li>
    </ul>
  </div>
  <div id="version_1_51_0.acknowledgements">
    <h3><span class="link">Acknowledgements</span></h3>
    <p>
      <a href="/users/people/beman_dawes.html">Beman Dawes</a>, Eric Niebler,
      <a href="/users/people/rene_rivera.html">Rene Rivera</a>, Daniel James,
      Vladimir Prus and Marshall Clow managed this release.
    </p>
  </div>
</div>
              </div>
            </div>
          </div>
        </div>
      </div>

      <div id="sidebar">
        <!--#include virtual="/common/sidebar-common.html" --><!--#include virtual="/common/sidebar-boost.html" -->      </div>

      <div class="clear"></div>
    </div>
  </div>

  <div id="footer">
    <div id="footer-left">
      <div id="copyright">
        <p>Copyright Rene Rivera 2006-2007.</p>
      </div><!--#include virtual="/common/footer-license.html" -->    </div>

    <div id="footer-right">
      <!--#include virtual="/common/footer-banners.html" -->    </div>

    <div class="clear"></div>
  </div>
</body>
</html>
